package com.efast.cafe.portal.service.api;

import java.util.List;

import com.efast.cafe.framework.pager.Pagination;
import com.efast.cafe.portal.bean.api.PortalApiObjectBean;
import com.efast.cafe.portal.bean.api.PortalApiObjectDto;
import com.efast.cafe.portal.bean.api.PortalApiObjectQueryBean;
import com.efast.cafe.portal.bean.api.PortalApiProjectBean;

/**
 * <p>Service接口</p>
 * <p>Table: portal_api_object - 对象定义</p>
 *
 * @since 2017-08-10 02:38:15
 */
public interface IPortalApiObjectService {
	
	/**
	 * 新增object
	 * @Date        :      2017年8月11日
	 * @param portalApiObjectBean
	 * @return
	 */
	public int insertApiObject(PortalApiObjectBean portalApiObjectBean);

	/**
	 * 修改object
	 * @Date        :      2017年8月12日
	 * @param portalApiObjectBean
	 */
	public void updateApiObject(PortalApiObjectBean portalApiObjectBean);
	
	/**
	 * 删除object
	 * @Date        :      2017年8月12日
	 * @param portalApiObjectBean
	 */
	public void deleteApiObject(PortalApiObjectBean portalApiObjectBean);
	
	/**
	 * 通过objId查询对象基本信息
	 * @Date        :      2017年8月12日
	 * @param portalApiObjectBean
	 * @return 
	 */
	public PortalApiObjectBean queryObjByObjId(PortalApiObjectBean portalApiObjectBean);
	
	/**
	 * 发布object
	 * @Date        :      2017年8月14日
	 * @param portalApiObjectBean
	 * @return
	 */
	public void publishApiObject(PortalApiObjectBean portalApiObjectBean);
	
	/**
	 * 升级object
	 * @Date        :      2017年8月15日
	 * @param portalApiObjectBean
	 */
	public void upgradeApiObject(PortalApiObjectBean portalApiObjectBean);
	
	/**
	 * 通过projectId查询项目下面所有的object
	 * @Date        :      2017年8月17日
	 * @param projectId
	 * @return
	 */
	public PortalApiObjectDto queryAllObjectByProId(PortalApiObjectDto portalApiObjectDto);
	
	/**
	 * 通过moduleID查询模块下面的所有的最新object
	 * @Date        :      2017年8月21日
	 * @param portalApiObjectDto
	 * @return
	 */
	public PortalApiObjectDto queryObjectByModuleId(PortalApiObjectDto portalApiObjectDto);
	
	/**
	 * 通过object的uuid查询所有该模块下的object的版本
	 * @Date        :      2017年8月21日
	 * @param portalApiObjectDto
	 * @return
	 */
	public List<PortalApiObjectDto> queryObjectByObjcetUUid(PortalApiObjectDto portalApiObjectDto);
	
	/**
	 * 校验object的系统标识符，在syetem下面唯一
	 * @Date        :      2017年9月8日
	 * @param apiObjectBean
	 * @return
	 */
	public void objIndentifierCount(PortalApiObjectBean apiObjectBean);
	
	/**
	 * 查询所有对象
	 * @Date        :      2017年9月12日
	 * @param apiObjectBean
	 * @return
	 */
	public PortalApiObjectQueryBean queryAllObjectList(PortalApiObjectQueryBean apiObjectQueryBean);
	

	/**
	 * 查询所有的项目
	 * 
	 * @return
	 */
	public List<PortalApiProjectBean> queryObjectAll();

	public PortalApiObjectDto queryObjectBySystemId(PortalApiObjectDto portalApiObjectDto);

	public void updateApiObjectLayout(PortalApiObjectDto portalApiObjectBean);
}